/**
 * 
 */
package org.vsg.stock.extension.service;

import java.io.File;
import java.util.Date;

import org.vsg.common.exceptions.service.ServiceException;
import org.vsg.stock.basic.domain.RealStockInfo;
import org.vsg.stock.basic.domain.StockInfo;

/**
 * @author vison
 *
 */
public interface StockMigrationService {
	
	void importDailyKLineFromFile(File dataMarketDir) throws ServiceException;
	
	/**
	 * import the data from specified date 
	 * @param dataMarketDir
	 * @param specifiedDate
	 * @throws ServiceException
	 */
	void importDailyKLineFromFile(File dataMarketDir , Date specifiedDate) throws ServiceException;

	/**
	 * 
	 * @param dataMarketDir
	 * @param stockCode reference stock code handle 
	 * @param specifiedDate
	 * @throws ServiceException
	 */
	void importDailyKLineFromFile(File dataMarketDir , String stockCode , Date specifiedDate) throws ServiceException;
	
	/**
	 * 
	 * @param dataDir
	 * @throws ServiceException
	 */
	void updateStockCategoryFromVsatData(File dataDir) throws ServiceException;
	
	/**
	 * 
	 * @param dataDir
	 * @throws ServiceException
	 */
	void updateDZHBlockToStockCategoryFromFile(File dataDir) throws ServiceException;
	
	/**
	 * 
	 * @param stockDataDir
	 * @throws ServiceException
	 */
	void updateStockInfo(File stockDataDir) throws ServiceException;
	
	/**
	 * 
	 * @param block
	 * @throws ServiceException
	 */
	void updateStockAndCategoryMapFromDZHFile(File block) throws ServiceException;
	
	/**
	 * 
	 * @param dataDir
	 * @throws ServiceException
	 */
	void updateStockAndCategoryMapFromVsatData(File dataDir) throws ServiceException;

	/**
	 * 
	 * @param stkPerformance
	 * @throws ServiceException
	 */
	void updateStockPerformanceFromVsatData(File vastDir) throws ServiceException;
	
	/**
	 * 
	 * @param file
	 * @throws ServiceException
	 */
	public void updateDailyLine(File file) throws ServiceException;
	
	/**
	 * 
	 * @param dataDir
	 * @throws ServiceException
	 */
	StockInfo updateStockInfoFromVsatData(StockInfo info , File stockVsatFile) throws ServiceException;
	
}
